12
תגובות
if (empty($_COOKIE['num']))
  {
     setcookie('num', '0', time()+3600 );
  }
$_COOKIE['num']++;
echo $_COOKIE['num'];



אנימתחיל לקרוא מאמרים על Php וכל זה, ועכשיו אני מנסה ליצור מונה כניסות בעזרת קוקיס, לפי האתגר של אלכס. קודם כל אלכס אתר מעולה, מדריכים מפורטים ובאמת אין לי מושג מה הייתי עושה בלי האתר הזה, כי בכל מקום אחר שאני צריך עזרה, לא מתקרב הנה..

מה שעשיתי לא עובד..הוא מתחיל מאפס, ואז עולה ל1 ושם נעצר

12 תשובות

avatar ענה liorel100 ב 27 למאי 2013 #

http://www.lior-portal.co.il/
ודרך אגב, תשתמש בisset.

avatar ענה yonikal56 ב 27 למאי 2013 #

אתה צריך לעשות שכל פעם שנכנסים יוסיף 1 לא רק למישהו 1 והecho עובד לך? לפי מ שידוע לי צריך print_r

avatar ענה razand ב 27 למאי 2013 #

<?php
if (isset($_COOKIE['num'])){
//העוגיה קיימת
$_COOKIE['num']++;//+1
setcookie('num', $_COOKIE['num'], time()+3600);//החלפת עוגיה
echo $_COOKIE['num'];//כתוב על המסך
}else{
//העוגיה לא קיימת
setcookie('num', 0, time()+3600);
echo "0";
}
?>

שים לב לשימוב ב isset במקום ב empty
על ההגדרה של העוגיה ל 0
ואם קיימת העוגיה אז נוצורת מחדש עם ערך שונה

avatar ענה zacharya ב 27 למאי 2013 #

ליאור וראזנד, אני לא חושב שצריך להשתמש בISSET אלא דווקא בEMPTY מאחר ויכול להיות מצב שהעוגיה קיימת אבל היא ריקה, NULL, ואין אפשרות להוסיף 1 לNULL.

avatar ענה ldbrgr ב 27 למאי 2013 #

<?php
 
  if(empty($_COOKIE['_COOKIE_NAME_ֹ'])) {
    // העוגיה ריקה
    $_COOKIE['_COOKIE_NAME_ֹ'] = 0;
  }
 
  // שלח עוגיה לדפדפן
  setcookie('_COOKIE_NAME_ֹ', ++$_COOKIE['_COOKIE_NAME_ֹ'], time()+3600);
 
  // הדפס ערך עוגיה
  echo $_COOKIE['_COOKIE_NAME_ֹ'];


אין יותר פשוט מזה.
*הבאג תוקן.

avatar ענה phpon ב 27 למאי 2013 #

לא עובד..

avatar ענה liorel100 ב 28 למאי 2013 #

תשתמש במסד או בקובץ. כרגע המונה כניסות הוא רק לבן אדם אחד.

avatar ענה ldbrgr ב 28 למאי 2013 #

כמו שהוא ככה, אין סיבה שלא יעבוד. הדפדפן שלך שומר עוגיות? ערכת את הקוד למצב שיש פלט לפני הפונקציה setcookie?

avatar ענה phpon ב 28 למאי 2013 #

לא..המונה כניסות אמור לעבודרק על אדם אחד..

avatar ענה liorel100 ב 28 למאי 2013 #

אתה צודק בבאג.
$_COOKIE כולל את העתק העוגיות שהלקוח שלח אליך. זה לא העוגיות האמיתיות. לכן אתה צריך לעשות setcookie מחדש עם הערך החדש.

avatar ענה OrelBeY ב 29 למאי 2013 #

@ldbrgr, לא הבנתי למה יש שימוש ב-empty ולא ב-isset.

זכריה - כל הקטע ב-isset זה שהוא מחזיר false אם זה מכיל null. הערך null בעצם אומר "ריק", "לא-כלום", "לא קיים".

חוץ מזה גם לא אהבתי שאין אימות של הנתונים - מאיפה לך שזה בכלל מספר? תשתמש ב-intval.

avatar ענה phpon ב 29 למאי 2013 #

תודה רבה אוראל, אני אבדוק זאת :D